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