我正在阅读有关Java Promises的教程。我在很多地方看到了then()方法的用法。
当我编写以下代码时,在控制台的__proto__
部分下看到了“ then()”函数。
const myPromise = new Promise(function(resolve, reject) {});
console.log(myPromise);
但是当我编写下面的代码时,我无法观察到相同的“ then()”函数,
class Car {
constructor(color, type, doors) {
this.color = color;
this.type = type;
this.doors = doors
}
}
const myCar = new Car('blue', 'sedan', '4');
console.log(myCar);
所以,我在想,我们可以在Javascript中创建自己的then()
函数并执行它吗?。
答案 0 :(得分:1)
这是因为在创建承诺时,__proto__
指向Promise.prototype
当您使用类创建对象时,__proto__
指向Object.prototype
有关更多信息,请阅读此https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain
是的,我们可以创建自己的then
函数并执行它,但是我们不应该这样做,除非您确切地知道自己在做什么
下面是创建自己的then
方法的示例
class myObj extends Object {
then() {
console.log('then is called');
}
}
var mo = new myObj()
现在您可以致电mo.then()
答案 1 :(得分:1)
看看this博客文章。您应该对完成后的承诺有一个非常扎实的想法。