Home  >  Article  >  Web Front-end  >  Learn more about Promise.resolve()

Learn more about Promise.resolve()

PHPz
PHPzOriginal
2024-02-18 19:13:05565browse

Learn more about Promise.resolve()

Detailed explanation of Promise.resolve() requires specific code examples

Promise is a mechanism in JavaScript for handling asynchronous operations. In actual development, it is often necessary to handle some asynchronous tasks that need to be executed in sequence, and the Promise.resolve() method is used to return a Promise object that has been fulfilled.

Promise.resolve() is a static method of the Promise class. It accepts a parameter and returns a Promise object. If the incoming parameter is a Promise object, Promise.resolve() will directly return the object; if the incoming parameter is a thenable object (that is, an object with a then method), Promise.resolve() will convert the object into a Promise object. And return; if the incoming parameter is a primitive value (not an object), a Fulfilled Promise with the primitive value as the result will be returned.

The usage and behavior of Promise.resolve() are explained in detail through code examples:

Example 1:

Promise.resolve("成功")
  .then((msg) => {
    console.log(msg);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:成功

In the above example, we use Promise.resolve The () method creates a Promise object in the Fulfilled state. In this example, the incoming parameter is a string "success", so Promise.resolve("success") directly returns a Promise object with the status Fulfilled and the result "success". Then we use the .then() method to process the result of the Promise object and print it out via console.log().

Example 2:

Promise.resolve(Promise.reject(new Error("失败")))
  .then((msg) => {
    console.log(msg);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:Error: 失败

In the above example, we convert a Promise object in the Rejected state into a Promise object in the Fulfilled state through the Promise.resolve() method. In this example, the parameter we pass in is Promise.reject(new Error("Failure")), which returns a Promise object in the Rejected state. Then we use Promise.resolve() to convert the Promise object into a Fulfilled Promise object, and process the result of the Promise object through the .catch() method, and print it out through console.error().

Example 3:

Promise.resolve({ name: "张三", age: 18 })
  .then((obj) => {
    console.log(obj.name, obj.age);
  })
  .catch((err) => {
    console.error(err);
  });

// 输出:张三 18

In the above example, we created a Fulfilled Promise object through the Promise.resolve() method. In this example, the parameter passed in is an object { name: "Zhang San", age: 18 }, so Promise.resolve({ name: "Zhang San", age: 18 }) directly returns an object whose status is Fulfilled and The result is a Promise object for this object. Then we use the .then() method to process the result of the Promise object, and print out the object's attributes name and age through console.log().

Summary:

Through the above code example, we can see that the function of the Promise.resolve() method is to convert a value into a Fulfilled Promise object. It can accept different types of parameters, including Promise objects, thenable objects and primitive values. Use the Promise.resolve() method to easily convert any type of value into a Promise object and perform subsequent processing on it.

It should be noted that the Promise object returned by the Promise.resolve() method is a Fulfilled Promise object, so its subsequent processing can directly use the .then() method instead of using .catch( ) method to handle exceptions.

The above is the detailed content of Learn more about Promise.resolve(). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn