Tôi đang cố gắng thu hút những lời hứa trong JavaScript (đặc biệt là AngularJS).Ngay lập tức trả lại lời hứa đã được giải quyết bằng AngularJS
Tôi có chức năng trong một dịch vụ, hãy gọi nó là fooService
, kiểm tra xem chúng tôi đã tải một số dữ liệu chưa. Nếu có, tôi chỉ muốn nó trở lại, và nếu chúng ta không có, chúng ta cần nạp dữ liệu và trả về một lời hứa:
this.update = function(data_loaded) {
if (data_loaded) return; // We've loaded the data, no need to update
var promise = Restangular.all('someBase').customGet('foo/bar').then(function(data) {
// Do something with the data here
}
return promise;
}
Tôi có một chức năng mà sau đó gọi update
chức năng của fooService
như vậy :
fooService.update(data_loaded).then(function() {
// Do something here when update is finished
})
vấn đề của tôi ở đây là nếu chúng ta không cần phải tải các dữ liệu trong update
chức năng, một lời hứa không được trả lại, vì vậy .then()
không được gọi là chức năng khác của tôi. Phương pháp tiếp cận nào nên ở đây - về cơ bản tôi muốn trả lời lời hứa đã được giải quyết ngay lập tức từ chức năng update()
nếu chúng tôi không cần nhận dữ liệu từ cuộc gọi Restangular?
Cảm ơn bạn đã có mẹo. Tôi luôn luôn bỏ lỡ cú pháp 'Q (initialVal)' của [Kris Kowal's Q] (https://github.com/kriskowal/q) và nên biết '$ q.when (data)' có thể thực hiện cùng một thủ thuật. – runTarm