Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6工厂功能的本机承诺_Javascript_Promise_Dom Events - Fatal编程技术网

Javascript ES6工厂功能的本机承诺

Javascript ES6工厂功能的本机承诺,javascript,promise,dom-events,Javascript,Promise,Dom Events,我正在深入研究ES6本地承诺。一路上,我看到一些文章引用了一些关于不使用诸如new,Object.create,this,等等的内容。一些人主张使用过度构造函数。我还了解到,在这些选择方面存在很多问题。所以为了避免这个问题被列为没有建设性,我想问这个具体的问题 如何在不使用新函数的情况下为承诺创建工厂函数 这同样适用于为获取构建新的头()之类的东西 在工厂函数的某个时刻,我将不得不写: new Promise(); DC和其他作者是否只引用自定义对象,而不是内置对象?那么其他所有需要使用new

我正在深入研究ES6本地承诺。一路上,我看到一些文章引用了一些关于不使用诸如
new
Object.create
this
,等等的内容。一些人主张使用过度构造函数。我还了解到,在这些选择方面存在很多问题。所以为了避免这个问题被列为没有建设性,我想问这个具体的问题

如何在不使用新函数的情况下为承诺创建工厂函数

这同样适用于为
获取构建新的
头()
之类的东西

在工厂函数的某个时刻,我将不得不写:

new Promise();

DC和其他作者是否只引用自定义对象,而不是内置对象?那么其他所有需要使用new的呢?

无论如何,在某些地方,您需要调用
new
关键字。你已经做到了99%

function promiseFactory(bodyFunc) {
  return new Promise(bodyFunc);
}
像这样使用这个

const promise = promiseFactory((resolve, reject) => setTimeout(resolve, 100, 'foo'));
范例

功能承诺工厂(bodyFunc){
返回新承诺(bodyFunc);
}
const promise1=承诺工厂((解析,拒绝)=>setTimeout(解析,100,'foo');
const promise2=承诺工厂((解析,拒绝)=>setTimeout(解析,500,'boo');
promise1.then(r=>console.log(r));
promise2.then(r=>console.log(r))如果您有一个“类”函数,要求您使用
new
关键字调用它,您可以使用
对象将其转换为工厂函数。创建
函数。像这样

职能人员(姓名){
this.name=名称;
}
Person.prototype.sayHi=函数(){
console.log(this.name);
}
const makePerson=(名称)=>{
const person=Object.create(person.prototype);
人员。呼叫(人员、姓名);
返回人;
}
makePerson('Joe').sayHi()
const promise = promiseFactory((resolve, reject) => setTimeout(resolve, 100, 'foo'));