Theo dõi tài khoản chính thức và cùng nhau liên lạc, tìm kiếm trên WeChat: LiOnTalKING
Lời hứa của JavaScript
Promise là một lớp do ECMAScript 6 cung cấp để viết các tác vụ không đồng bộ phức tạp một cách tinh tế hơn.
Làm cách nào để tạo một đối tượng Promise?
mới
Hứa(
chức năng
(giải quyết, bác bỏ) {
//
Những điều cần làm...
});
Sử dụng lời hứa:
mới
Hứa(
chức năng
(giải quyết, từ chối) { console.log(
1111
); giải quyết(
2222
); }).sau đó(
chức năng
(giá trị) { console.log(giá trị);
trở lại
3333
; }).sau đó(
chức năng
(giá trị) { console.log(giá trị);
ném
"Một lỗi"
; }).
nắm lấy
(
chức năng
(lỗi) { console.log(lỗi); });
Kết quả thực hiện:
Các phương thức không đồng bộ/chờ đợi không đồng bộ của JavaScript
- async là tên viết tắt của "không đồng bộ". async được sử dụng để khai báo rằng một hàm không đồng bộ, trong khi chờ đợi được sử dụng để chờ một phương thức không đồng bộ hoàn thành việc thực thi chờ đợi chỉ có thể xuất hiện trong các hàm async.
- async có nghĩa là đây là chức năng không đồng bộ đang chờ đợi chỉ có thể được sử dụng trong các chức năng không đồng bộ và không thể sử dụng một mình.
- async trả về một đối tượng Promise và chờ đợi là chờ kết quả trả về của lời hứa này trước khi tiếp tục thực hiện.
- chờ đợi đang chờ một đối tượng Promise, đối tượng này phải được theo sau bởi một đối tượng Promise, nhưng không cần phải viết then(), bạn có thể nhận giá trị trả về trực tiếp
phỏng vấn việc làm
Quá trình phỏng vấn xin việc được thực hiện hôm nay bao gồm tổng cộng 3 cuộc phỏng vấn. Chỉ khi bạn vượt qua cuộc phỏng vấn cuối cùng, bạn mới có thể bước vào cuộc phỏng vấn tiếp theo. Nếu bạn vượt qua cả 3 cuộc phỏng vấn, bạn đã thành công trong việc tìm kiếm việc làm Promise và async/await. được sử dụng để đạt được sự so sánh.
Phương pháp phỏng vấn như sau:
//
phỏng vấn
chức năng
phỏng vấn (vòng) {
trở lại
mới
Hứa hẹn((resole, từ chối) =>
{ setTimeout(()
=>
{
của chúng tôi
điểm =
Toán.ngẫu nhiên();
nếu như
(điểm > 0,6)
) { resole(điểm); }
khác
{
của chúng tôi
lỗi =
mới
Error(`Fraction: ${score}`);
=
tròn; từ chối(lỗi) } },
1000
); }); };
Vòng tham số của phương pháp này là vòng phỏng vấn. Phương thức trả về một lời hứa và nhận được một số ngẫu nhiên. Nếu vượt quá 0,6 thì cuộc phỏng vấn sẽ được thông qua, nếu không thì sẽ thất bại.
Thực hiện quá trình tìm kiếm việc làm thông qua các phương pháp không đồng bộ:
//
Tìm kiếm công việc theo phương pháp không đồng bộ
không đồng bộ
chức năng
tìm kiếm việc làm() { console.log(
'seekJobs => bắt đầu'
); console. thời gian(
'tìm kiếm việc làm'
);
thử
{ console.log(
'Điểm phỏng vấn vòng 1:', chờ phỏng vấn(1
)); console.log(
'Điểm phỏng vấn vòng 2:', chờ phỏng vấn(2
)); console.log(
'Điểm phỏng vấn vòng 3:', chờ phỏng vấn(3
)); console.log(
'vâng!'
); }
nắm lấy
(lỗi) { console.error(
'The' + error.round + 'Thất bại trong vòng phỏng vấn:'
, lỗi); } console.log(
'seekJobs => kết thúc.'
); console.timeEnd(
'tìm kiếm việc làm'
);
trở lại
'Việc tìm kiếm việc làm đã kết thúc. '
; };
Khai báo phương thức là phương thức không đồng bộ thông qua async. Sử dụng chờ đợi để chờ trả kết quả phỏng vấn cho mỗi vòng phỏng vấn. Nếu vượt qua, bạn có thể vào vòng phỏng vấn tiếp theo. được ghi lại. Phương thức cuối cùng trả về thông báo "Việc tìm kiếm đã kết thúc."
Thực hiện quá trình tìm kiếm việc làm thông qua Promise:
//
Săn việc bằng lời hứa
chức năng
tìm kiếm việc làm_P() { console.log(
'seekJobs => bắt đầu'
); console. thời gian(
'tìm kiếm việc làm'
); phỏng vấn(
1
) .then((điểm)
=>
{ console.log(
'Điểm phỏng vấn vòng 1:'
, điểm);
trở lại
phỏng vấn(2
); }) .then((điểm)
=>
{ console.log(
'Điểm phỏng vấn vòng hai:'
, điểm);
trở lại
phỏng vấn(3
); }) .then((điểm)
=>
{ console.log(
'Điểm phỏng vấn vòng 3:'
, điểm); console.log(
'vâng!'
); }) .
nắm lấy
((lỗi) =>
{ console. lỗi(
'The' + error.round + 'Thất bại trong vòng phỏng vấn:'
, lỗi); }); console.log(
'seekJobs => kết thúc.'
); console.timeEnd(
'tìm kiếm việc làm'
);
trở lại
'Việc tìm kiếm việc làm đã kết thúc. '
; };
Nếu vượt qua từng vòng phỏng vấn thì sẽ vào sau đó, in điểm và gọi vòng phỏng vấn tiếp theo cho đến khi tất cả các vòng phỏng vấn đều vượt qua. Nếu có vòng phỏng vấn nào thất bại giữa chừng thì sẽ vào vòng bắt. cùng một thông báo "Tìm việc đã kết thúc" sẽ được trả về.
Cuối cùng viết phương thức main của chương trình chính
/*
* * Chủ đề chính
*/
(
chức năng
main() { console.log(
'chính.bắt đầu======================================='
); console. thời gian(
'chủ yếu'
);
//
Gọi phương thức tìm kiếm công việc không đồng bộ. Nếu bạn gặp phải chờ đợi, bạn sẽ không chờ đợi mà trực tiếp quay lại phương thức chính để tiếp tục thực hiện. Kết quả trả về tìm kiếm công việc sẽ chỉ được xuất ra sau khi main được thực thi.
//
tìm kiếm việc làm().sau đó((res) => {
//
console.log('Job job return:', res);
//
});
//
Gọi phương thức lời hứa để xin việc, tiếp tục thực hiện khi gặp rồi trả về "Việc tìm kiếm việc làm đã kết thúc", quay lại phương thức chính để xuất kết quả trả về của tìm kiếm việc làm và cuối cùng xuất ra điểm của mỗi cuộc phỏng vấn
của chúng tôi
độ phân giải =
tìm kiếm việc làm_P(); console.log(
'Tìm kiếm việc làm trở lại:'
, res); console.log(
'main.end======================================'
); console.timeEnd(
'chủ yếu'
); })();
。
Chương trình chính có thể gọi seekJobs và seekJobs_P để xin việc theo hai cách.
1. Khi một phương thức không đồng bộ gặp phải đang chờ, nó sẽ trực tiếp trở về phương thức chính. Phương thức chính tiếp tục thực thi. Phương thức không đồng bộ được thực thi bởi một luồng khác và lệnh gọi lại được gọi sau khi quá trình thực thi hoàn tất.
2. Phương thức hứa tiếp tục thực thi khi gặp và trả về "Việc tìm kiếm việc làm đã kết thúc", quay lại phương thức chính để xuất kết quả trả về tìm kiếm việc làm và cuối cùng xuất ra điểm của mỗi cuộc phỏng vấn.
Cuối cùng, bài viết này về Javascript | Sử dụng phương pháp không đồng bộ asyncawait và Promise để triển khai một chương trình tìm kiếm việc làm đơn giản sẽ kết thúc tại đây. vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!