Как называют функции которые возвращает функцию
Должна вернуть асинхронную функцию
return Promise.reject(`${model.name} with ${field} = ${value} does not exists`);
throw Error(`${model.name} with ${field} = ${value} does not exists`);
import CPromise from "c-promise2";
// прерываемый fetch с таймаутом
function fetchWithTimeout(url, options) {
const {timeout, ...fetchOptions}= options;
return new CPromise((resolve, reject, {signal}) => {
fetch(url, {...fetchOptions, signal}).then(resolve, reject)
}, timeout)
}
const chain = fetchWithTimeout("https://run.mocky.io/v3/753aa609-65ae-4109-8f83-9cfe365290f0?mocky-delay=10s", {timeout: 5000})
.then(response => response.json())
.then(response => console.log('Done:', response ));
// chain.cancel(); - прервать цепочку промисов и отменить запрос в любое время
// вернет false, если прервать не удалось (в случае, если цепочка была уже выполнена)
puppeteer.launch(
{
args: [
'--proxy-server=ip:port', // Or whatever the address is
]
}
)
.then(function (browser) {
return browser.newPage().then(function (page) {
page.authenticate({
username: 'log',
password: 'pass',
});
return page.goto(desktopUrl).then(function () {
return page.content();
});
})
.then(function (html) {
const productList = [];
$('div.product-card', html).each(function () {
let link = $("a.card-link", $(this)).attr("href");
let pic = $("img.image-component", $(this)).attr("src");
productList.push({ProductLink: link, picture: pic});
});
console.log(productList);
//----------Где-то тут нужно закрыть браузер
return browser.close().then(function () {
callback(null, productList); // :( лучше с промисами и продолжать, а не переходить на коллбеки
});
})
})
.catch(function (err) {
return callback(err, null);
});
On the VLC media player Tools menu, click Preferences.
In the Simple Preferences dialog box, click Input / Codecs in the contents panel.
In Input & Codecs Settings, in the Network area, change the Live555 stream transport option from HTTP (default) to RTP over RTSP (TCP).
Click Save.
let obj={};
[{name: 'one', q: 5}, {name: 'one', q: 3}, {name: 'two', q: 1},{name: 'two', q: 6},{name: 'three', q: 10}].forEach(entry=>{
if(obj[entry.name]){
obj[entry.name].q+= entry.q;
}else{
obj[entry.name]= entry;
}
});
console.log(Object.values(obj));
//Or ES5 way
console.log(Object.keys(obj).map(name=>obj[name]));
let sum= Array.prototype.reduce.call(arguments, (acc, value)=>acc+value, 0))
function toArray() {
let len = arguments.length;
if (len === 0)return [];
return len > 1 ? Array.apply(null, arguments) : [arguments[0]];
}
let sum= toArray.apply(null, arguments).reduce( (acc, value)=>acc+value, 0))
сначала подумал, что крутая вещь, сейчас понял - хрень для аутистов.
function getKmzFileAsText() {
return new Promise(function(resolve, reject){
var text = '';
var xhr = new XMLHttpRequest(),
fileReader = new FileReader();
xhr.open("GET", "kmz/1.kmz", true);
xhr.responseType = "blob";
xhr.addEventListener("load", function () {
if (xhr.status === 200) {
// Load blob as Data URL
fileReader.readAsDataURL(xhr.response);
JSZip.loadAsync(xhr.response)
.then(function (content) {
// if you return a promise in a "then", you will chain the two promises
resolve(content.files["doc.kml"].async('text'));
}).then(resolve, reject);
}else{
reject(Error(xhr.status))
}
}, false);
xhr.ontimeout= xhr.onerror= reject;
xhr.send();
});
}
getKmzFileAsText().then(function(result){
console.log(result);
});
setTimeout(function(){
modal.parentNode.removeChild(modal);
},5000);