Example 1: promise catch
var p1 = new Promise(function(resolve, reject) {
resolve("Success");
});
p1.then(function(value) {
console.log(value);
throw "oh, no!";
}).catch(function(e) {
console.log(e);
});
Example 2: promise js
We use promise to make a AsyncFunction, cose simetime we have to wait that function give
us some result.
Example, if we use ajax we have await ajax data or statament.
_____________________________________
Make a simple example.
_____________________________________
var asyncronus_function= (number)=>
{
return new Promise( (accept, reject)=>
{
})
}
_____________________________________
this function return a promise Object, thet required a function executor
this functions (accept, reject) are defined in the executor
function, that was needed in promise constructor.
Syntax: new Promise (executor)
executor= (accept, reject) =>{}
if function end well we return a accept(), otherwise reject()
_____________________________________
Let complete asyncronus_function
_____________________________________
var asyncronus_function= (number)=>
{
return new Promise( (accept, reject)=>
{
if(number>10)
return accept("my first async");
return reject("my first async error")
})
}
if it dont return any of this 2 function, Promise state is [PENDING] ,
if return accept is [RESOLVED] end if return reject is [REJECTED]
_____________________________________
how we can retrieve accept or reject?
_____________________________________
there is two methods really important, that we have to consider afther we call this function
1) .then(function(error){}) is call when promise state is [RESOLVED]
2) .error(function(error){}) is call when promise state is [REJECTED]
3) do nothing if [PENDING]
_____________________________________
let call asyncronus_function()!!!
_____________________________________
asyncronus_function(MY_NUMBER).then(function(data)
{
console.log(data)
}).catch(error =>
{
console.log(error)
});
if MY_NUMBER> 10 ,asyncronus_function print data : OUTPUT my first async
if MY_NUMBER<10 , asyncronus_function print error : OUTPUT my first async error
HOPE it halp and have a nice day!
Example 3: js return a promise
function myAsyncFunction(url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.onload = () => resolve(xhr.responseText);
xhr.onerror = () => reject(xhr.statusText);
xhr.send();
});
}
Example 4: 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 5: 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 6: 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);
})