Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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 我能创造我自己的吗;然后();函数并执行它?_Javascript_Promise_Es6 Promise_Asynchronous Javascript - Fatal编程技术网

Javascript 我能创造我自己的吗;然后();函数并执行它?

Javascript 我能创造我自己的吗;然后();函数并执行它?,javascript,promise,es6-promise,asynchronous-javascript,Javascript,Promise,Es6 Promise,Asynchronous Javascript,我正在学习一个关于Javascript承诺的教程。我在很多地方看到then()方法的用法 当我编写下面的代码时,我在控制台的\uuuu proto\uuu部分下看到了“then()”函数 const myPromise = new Promise(function(resolve, reject) {}); console.log(myPromise); 但是当我写下面的代码时,我无法观察到相同的“then()”函数 class Car { constructor(color, type

我正在学习一个关于Javascript承诺的教程。我在很多地方看到then()方法的用法

当我编写下面的代码时,我在控制台的
\uuuu proto\uuu
部分下看到了“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()
函数并执行它吗?

这是因为当你创建promise时,protoprotoprotoprotoprotoprotoprotoprotoprotoprototype指向
promise.prototype
当您使用类创建对象时,它的
\uuuu proto\uuu
指向
对象。prototype

欲了解更多信息,请阅读此

是的,我们可以创建自己的
,然后
函数并执行它,但我们不应该这样做,除非您确切知道自己在做什么

下面是一个创建我们自己的
then
方法的示例

class myObj extends Object {
  then() {
    console.log('then is called');
  }
}

var mo = new myObj()

现在您可以调用
mo.then()

这是因为当您创建promise时,它的
\uuuu proto\uuuuu
指向
promise.prototype
当您使用类创建对象时,它的
\uuuu proto\uuu
指向
对象。prototype

欲了解更多信息,请阅读此

是的,我们可以创建自己的
,然后
函数并执行它,但我们不应该这样做,除非您确切知道自己在做什么

下面是一个创建我们自己的
then
方法的示例

class myObj extends Object {
  then() {
    console.log('then is called');
  }
}

var mo = new myObj()

现在你可以调用
mo.then()
看看博客文章。当你完成时,你应该对承诺有一个非常明确的概念

看看博客帖子。当你完成时,你应该对承诺有一个非常明确的概念

你读过关于承诺的书吗
.then()
是promise对象上的方法。您可以使用它来注册解析处理程序或拒绝处理程序,当该承诺被解析或拒绝时,承诺基础结构将调用该处理程序。它不是泛型方法,而是特定于承诺对象的方法。将履行和拒绝处理程序附加到承诺中,并返回一个新的承诺,该承诺解析为被调用处理程序的返回值,或者如果承诺未被处理(即,如果相关处理程序OnCompleted或onRejected不是一个函数),则返回其原始固定值@Syed Mehtab Hassan,它没有解释then()做什么,什么时候我们可以使用它,它从哪里来。@user3742125我想它已经看到了这个答案@Syed Mehtab Hassan,我已经编辑了我的问题,回顾一下。你读过关于承诺的内容吗
.then()
是promise对象上的方法。您可以使用它来注册解析处理程序或拒绝处理程序,当该承诺被解析或拒绝时,承诺基础结构将调用该处理程序。它不是泛型方法,而是特定于承诺对象的方法。将履行和拒绝处理程序附加到承诺中,并返回一个新的承诺,该承诺解析为被调用处理程序的返回值,或者如果承诺未被处理(即,如果相关处理程序OnCompleted或onRejected不是一个函数),则返回其原始固定值@Syed Mehtab Hassan,它没有解释then()做什么,什么时候我们可以使用它,它从哪里来。@user3742125我想它已经看到了这个答案@Syed Mehtab Hassan,我已经编辑了我的问题,回顾一下。我们如何创建自己的then函数?请添加一个示例also@SyedMehtabHassan我们如何创建自己的then函数请添加一个示例also@SyedMehtabHassan加上。。。jQuery承诺,至少在2.x中是不符合Promise/A+的,而Q承诺过去更糟!!我会跳过第2、3、4和5章,另外。。。jQuery承诺,至少在2.x中是不符合Promise/A+的,而Q承诺过去更糟!!我将跳过第2、3、4和5章