resolve promise and return value code example

Example 1: promise resolve reject

function testFunction(value) {
    return new Promise(function (resoleve, reject) {
        setTimeout(function () {
            let n = value;
            if (n < 100) {
                resoleve("範囲内");
            } else {
                reject("範囲外");
            }
        }, 2000);
    })
}
 
testFunction(10)
    .then(function (value) {
        console.log(value);
        return testFunction(50);
    })
    .then(function (value) {
        console.log(value);
        return testFunction(150);
    })
    .catch(function (error) {
        console.log(`エラーです。${error}`);
    })

Example 2: resolve vs return promise js

In simple terms, inside a then handler function:

A) When x is a value (number, string, etc):
	- return x is equivalent to return Promise.resolve(x)
	- throw x is equivalent to return Promise.reject(x)

B) When x is a Promise that is already settled (not 
pending anymore):
	- return x is equivalent to return Promise.resolve(x), 
      if the Promise was already resolved.
	- return x is equivalent to return Promise.reject(x), 
      if the Promise was already rejected.
      
C) When x is a Promise that is pending:
	- return x will return a pending Promise, and it will 
    be evaluated on the subsequent then.
Read more on this topic on the Promise.prototype.then() docs.

Example 3: promise resolve reject

function testFunction() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve('hello!');
        }, 1000);
    })
}
 
testFunction()
    .then(function (value) {
        console.log(value);
    })
    .catch(function (error) {
        console.log(error);
    })