powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подскажите по функциям js
6 сообщений из 6, страница 1 из 1
Подскажите по функциям js
    #38825065
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понадобилось написать простенький аддон к Firefox.

Нашел пример чтения файла:

Код: javascript
1.
2.
3.
4.
5.
6.
let promise = OS.File.read("file.txt", { encoding: "utf-8" });
promise = promise.then(
  function onSuccess(text) {
    return text;        // text is a string
  }
);



если return заменить на console.log(text); то текст в консоль выводится, а если например пытаться присвоить text глобальной переменной, то в ней пусто...

я в js не силен, чтото получается потому что он "похож на С++" :) поэтому не могу понять, куда возвращает значение return в оригинальном примере.

Подскажите как достать текст.
...
Рейтинг: 0 / 0
Подскажите по функциям js
    #38825092
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql,

покажите как вы пишите в глобальную переменную.
И почему нельзя провести все необходимые действия с переменной text в самой функции onSuccess?
...
Рейтинг: 0 / 0
Подскажите по функциям js
    #38825223
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторJeStone
ну как, как t=text; :)

а вот в функцию все засунуть не догадался. работает.

Только всеже очень интересно, куда же этот return возвращал значение??

Вот что получилось: (слепил из примеров при помощи кувалды, перемменную оставил в коментах.)

Такое ощущение, что то, что получилось работает через три разных АПИ


По кнопке берет значение из файла, пишет куку, удаляет файл.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
const {Cu,Ci,Cc} = require("chrome");
const {OS} = Cu.import("resource://gre/modules/osfile.jsm", {});

/*
var t; // тут объявлял t
*/
var file = "c:\\c.txt";
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");


var button = buttons.ActionButton({
  id: "mozilla-link",
  label: "Visit Mozilla",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick
});

function handleClick(state) {

let promise = OS.File.read(file , { encoding: "utf-8" });
promise = promise.then(
  function onSuccess(text) {

/*
t=text; // пытался присвоить
*/

	var url = "http://www.example.com/";

	var cookieString = "your_key_name="+text+";domain=.example.com;";

	var cookieUri = Cc["@mozilla.org/network/io-service;1"]
    		.getService(Ci.nsIIOService)
    		.newURI(url, null, null);

	Cc["@mozilla.org/cookieService;1"]
    		.getService(Ci.nsICookieService)
    		.setCookieString(cookieUri, null, cookieString, null);
	

  }
);

/*
console.log(t); // ну и в консоль, а там undifined
*/

promise = OS.File.remove(file);

}

...
Рейтинг: 0 / 0
Подскажите по функциям js
    #38825264
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlну как, как t=text; :)

В данном случае вы пишите в this.t, где this !== window
А извне onSuccess this === window
Конечно, неправильно использовать глобальные переменные в данном случае, но чтобы видеть x из-вне, надо писать window.t = text;
...
Рейтинг: 0 / 0
Подскажите по функциям js
    #38825311
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Full message: ReferenceError: window is not defined

window в аддонах вроде как и нет, даже alert() просто так не вызвать, надо конструкцию городить :(
...
Рейтинг: 0 / 0
Подскажите по функциям js
    #38825345
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql Только всеже очень интересно, куда же этот return возвращал значение?? это возвращаемое значение сохранится внутри promise и будет передано в колбэк следующего вызова then (если оный имеется).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подскажите по функциям js
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]