Jakby jeszcze ktoś chciał powrócić do tego pytania to to rozwiązałem w ten sposób:
jest jedna funkcja sllep:
function sleep( time ) {
return new Promise( ( resolve ) => {
return setTimeout( resolve, time );
} );
}
i każdą osobną funkcję przerobiłem na funkcję asychroniczną. Jeśli się wywoła funkcję asynchroniczną z funkcji asynchronicznej to nie powodują one błędu. Czyli
( async function() {/*jshint ignore:line */
opsp();//inna funkcja anynchroniczna-jej załączenie nie zakłuca działania tej funkcji
document.querySelector("#haySlider > ol > li:nth-child(21)").click();
var owd=document.querySelector("#oatsSlider > ol > li:nth-child(16) > span");
if (owd!==null) {owd.click();}
await sleep(10);/*jshint ignore:line */
document.querySelector("#feed-button > span > span > span").click();
}() );/*jshint ignore:line */
Czyli po prostu ten kod:
/* jshint ignore:start */
async function sleep(as) {
await sleep_o( as );
};
/* jshint ignore:end */
Znaczy to samo co to:
async function sleep(as) { /*jshint ignore:line */
await sleep_o( as ); /*jshint ignore:line */
}; /*jshint ignore:line */
tylko że jest bardziej przejrzyste. Jeszcze dlaczego mi tampermonkey wyrzucał błąd. Jshint jeszcze nie jest przystosowany do obsługiwania komend async i await gdyż są one w standardzie ECMAScript6 który nie jest jeszcze w pełni obsługiwany przez js-hint-a który jest domyślny dla sprawdzania tekstu w tampermonkey.To samo jest po zainstalowaniu js-hint-a i skonfigurowaniu go do obsługi ECMAScript6 w Sublime Text.